package com.file;

import java.io.*;
import java.util.Scanner;

public class CopyMachine {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入您目标文件的路径：");
        System.out.println("（注意：在输入文件路径时需要用转义字符反斜杠来使用可以指向下一个文件路径反斜杠，即需要两个反斜杠\\");

        Lo:
        while (true) {
            String TargetPath = sc.nextLine();//输入目标文件路径
            File file1 = new File(TargetPath);//创建文件对象


            if (file1.exists()) {  //判断目标文件是否存在
                if (file1.isFile()) {  //判断是否为文件
                    System.out.println("请输入您要复制的目标路径");
                    System.out.println("（注意：在输入文件路径时需要用转义字符反斜杠来使用可以指向下一个文件路径反斜杠，即需要两个反斜杠\\");

                    while (true) {
                        String CopyPath = sc.nextLine();//输入要复制的目标路径
                        File file2 = new File(CopyPath);  //创建文件对象
                        if (file2.exists()) {

                            FileInputStream fis = new FileInputStream(TargetPath);
                            FileOutputStream fos = new FileOutputStream(new File(CopyPath,file1.getName()));
                            byte[] bytes = new byte[1024];
                            int b;
                            while ((b =fis.read(bytes)) != -1) {
                                fos.write(bytes,0,b);  //将目标文件写入要复制的路径中
                            }

                            System.out.println("文件复制成功！");

                            //释放资源
                            fos.close();
                            fis.close();


                            break Lo;
                        }
                        System.out.println("您输入的文件路径不存在，请检查后重新输入：");
                    }
                }
                //如果输入的目标文件路径不是文件
                else {
                    System.out.println("抱歉，您输入的不是文件的路径，请检查后重新输入：");
                }
            }
            else {
                System.out.println("抱歉！您输入的文件路径不存在，请检查后重新输入：");
            }
        }
    }
}
